Current computer operating systems contain files that are organized into a set of folders. Any item in an operating system resides in only one folder. Such an architecture imposes burdensome restrictions on users who want to organize their files in more flexible ways. Many operating systems are now beginning to be developed that allow users to organize their files in accordance with richer properties so that users can, for example, quickly see all files created by a particular author or all pictures taken on a specific date, regardless of which folders the files are be located in.
When presented with a large number of files at once, it may be desirable to be able to filter those files so that a reduced subset of the those files will be presented that are hopefully more relevant to the user. The concept of filtering differs from the concept of searching. In filtering, one typically begins with a known population of files and narrows that population down to a subset that is hopefully easier to manage. For example, a user might easily have thousands of documents on their computer's hard drive, and filtering would be desirable in this case to narrow that set down to the relative few that the user is likely to be interested in. On the other hand, in searching, one typically begins with the idea that there is no population, but that a result population will be formed based on the search criteria.
One of the problems with filtering is communicating to the user a context of the filtering. In other words, after filtering, the user does not know which set of files the user started with as compared with the files that have been subsequently filtered. In many filtering systems, the filtered-out files simply disappear from the screen, making it difficult for the user to see what proportion of items they are left with from the whole, or what context those items were in before they were filtered.